IncrediLink

注意: 我们已弃用对 Visual Studio 2008 及更早版本的支持,因为 Microsoft 已不再支持这些版本。

IncrediLink 选项可加快增量链接速度。它通过结合 Visual Studio 的增量链接功能和修改 link.exe 命令行实现提速,对 LIB 文件的引用因此会替换为对构成 LIB 文件的 OBJ 文件的引用(只要条件允许)。只有这样,增量链接功能才能在 LIB 项目组成的解决方案中生效,并且这些项目都链接到主项目中。IncrediLink 只会影响 DLL 和 EXE 项目的链接。

>启用 IncrediLink 方法如下:

  1. 前往 Agent Settings > Visual Studio Builds > Linker

  2. 选择 By default, enable IncrediLink,然后选择下列必选选项:

    • According to "Enable Incremental Linking" project setting – 只对开启“增量链接”的项目启用 IncrediLink(默认)。

    • For all projects – 对所有项目启用 IncrediLink。

    • Do not create libraries – 控制 Incredibuild 是否跳过 IncrediLink 将其 OBJ 文件嵌入父项目链接命令行的 LIB 项目的链接步骤。由于这些 LIB 项目的 OBJ 文件被链接到主要的可执行文件/DLL 中,所以通常可以跳过这些 LIB 项目的链接步骤,省去额外的构建时间。

  3. 选择 According to Incredibuild default settingAccording to 'use Library Dependency Inputs' project option(IncrediLink 只会对在项目属性中启用该设置的项目生效)运行模式。

需考虑的情况

  • 如果不同的库项目重复定义了相同的符号,则可能出现 Duplicate Symbol 链接错误提示。这是因为链接器对驻留在库中的冲突符号的容忍度比对定义在不同对象文件中的冲突符号的容忍度高。如果出现上述情况,则需更改您的代码,确保只包含唯一的符号定义。

  • 提示 Missing Function Body 链接错误。解决该问题需要在代码中添加函数体存根。

  • 最终的输出结果仍然会包含代码中没有被引用的符号(常规链接的情况下会被忽略)。